package gemsa.beans;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;


/**
 * Classe Questionnaire
 * @author Projet Dev Groupe 33
 * @version 1.0
 */
public class Projet 
{
	// Attributs 
	private int id;
	private Date dateCreation;
	private Date dateModification;
	private int etat;
	private double total;
	private List<LigneProjet> listeLigneProjet;
	private Client client;
	
	// Constructeur 
	public Projet()
	{
		super();
		
		// Initialisation du coefficient
		total=0;
		etat=0;
		dateCreation=new Date();
		dateModification=new Date();
		
		// On initialise la liste des reponses
		listeLigneProjet=new ArrayList<LigneProjet>();
	}

	// Accesseurs 
	public Client getClient() 
	{
		return client;
	}

	public void setClient(Client client)
	{
		this.client=client;
	}

	public Date getDateCreation() 
	{
		return dateCreation;
	}

	public void setDateCreation(Date dateCreation)
	{
		this.dateCreation=dateCreation;
	}

	public Date getDateModification() 
	{
		return dateModification;
	}

	public void setDateModification(Date dateModification) 
	{
		this.dateModification=dateModification;
	}

	public int getEtat()
	{
		return etat;
	}

	public void setEtat(int etat)
	{
		this.etat=etat;
	}

	public int getId()
	{
		return id;
	}

	public void setId(int id) 
	{
		this.id=id;
	}

	public List<LigneProjet> getListeLigneProjet()
	{
		return listeLigneProjet;
	}

	public void setListeLigneProjet(List<LigneProjet> listeLigneProjet) 
	{
		this.listeLigneProjet=listeLigneProjet;
	}

	public double getTotal()
	{
		return total;
	}

	public void setTotal(double total) 
	{
		this.total=total;
	}

	
	// Méthodes publiques
	public void ajouterReponse(Reponse reponse)
	{
		// Variables
		LigneProjet ligneProjet=null;
		
		// Initialisation de la nouvelle ligne
		//ligneProjet=new LigneProjet(reponse);
		
		// On v�rifie que la ligne (article) n'existe pas d�j�
		if(listeLigneProjet.contains(ligneProjet))
		{
			// Si la reponse existe, on ?
			ligneProjet=listeLigneProjet.get(listeLigneProjet.indexOf(ligneProjet));
			// ligneProjet.ajouterQuantite();
		}
		else
		{
			// Sinon on ajoute la ligne à la liste
			listeLigneProjet.add(ligneProjet);
		}
		
		// On redéfinit le total
		this.total+=ligneProjet.getCoefficient();
		}
	
	
	public void supprimerUneReponse(Reponse reponse)
	{
		// Variables
		LigneProjet ligneProjet=null;
		
		// Initialisation de la nouvelle ligne
		ligneProjet=new LigneProjet(reponse);
		
		// On v�rifie que la ligne (reponse) existe déjà
		if(listeLigneProjet.contains(ligneProjet))
		{
			// On r�cupert la ligne de la liste
			ligneProjet=listeLigneProjet.get(listeLigneProjet.indexOf(ligneProjet));

			// On supprime la ligne
			listeLigneProjet.remove(ligneProjet);

			// On red�finit le total
			this.total-=ligneProjet.getCoefficient();
		}
	}
	
	
	public void supprimerReponse(Reponse reponse)
	{
		// Variables
		LigneProjet ligneProjet=null;
		
		// Initialisation de la nouvelle ligne
		ligneProjet=new LigneProjet(reponse);
		
		// On v�rifie que la ligne (reponse) existe déjà
		if(listeLigneProjet.contains(ligneProjet))
		{
			// On récupère la ligne de la liste
			ligneProjet = listeLigneProjet.get(listeLigneProjet.indexOf(ligneProjet));
			
			// On supprime la ligne
			listeLigneProjet.remove(ligneProjet);
		}
	}
		
}
